home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / snmp / mib2c-data / details-enums.m2i < prev    next >
Text File  |  2008-09-22  |  3KB  |  81 lines

  1. #############################################################  -*- c -*-
  2. ## generic include for enums. Do not use directly.
  3. ##
  4. ## $Id: details-enums.m2i 12011 2005-03-18 23:01:44Z rstory $
  5. ########################################################################
  6. @if $m2c_mark_boundary == 1@
  7. /** START code generated by $RCSfile$ $Revision: 12011 $ */
  8. @end@
  9. ########################################################################
  10. @ifconf $node.syntax.m2i@
  11. @   include $node.syntax.m2i@
  12. @else@
  13. ##
  14. ##   Generating enums
  15. ##
  16. ## Examples:
  17. ##
  18. ## enums  syntax    perltype  net-snmp type  cdecl  m2c_decl
  19. ## -----  --------  --------  -------------  -----  -------
  20. ##   1    SomeTC    BITS      ASN_OCTET_STR  char    u_long
  21. ##   1    INTEGER   INTEGER   ASN_INTEGER    long    u_long
  22. ##   1    RowStatus INTEGER   ASN_INTEGER    long    u_long
  23. ##
  24. /*************************************************************
  25.  * constants for enums for the MIB node
  26.  * $node ($node.syntax / $node.type)
  27.  *
  28.  * since a Textual Convention may be referenced more than once in a
  29.  * MIB, protect againt redefinitions of the enum values.
  30.  */
  31. ##
  32. #ifndef ${m2c_de_pfx}_ENUMS
  33. #define ${m2c_de_pfx}_ENUMS
  34.  
  35. @      eval $m2c_mask=""@
  36. @      foreach $e $v enum@
  37. @         include m2c_setup_enum.m2i@
  38. @         if "$node.perltype" eq "BITS"@
  39. @            if $v > 31@
  40. @               print ** ACK! I cannot handle BITS longer than 4 bytes!@
  41. @               exit@
  42. @            end@
  43. @            if "x$m2c_mask" eq "x"@
  44. @               eval $m2c_mask="$m2c_ename"@
  45. @            else@
  46. @               eval $m2c_mask="$m2c_mask | $m2c_ename"@
  47. @            end@
  48. $m2c_const_dcl $m2c_ename $m2c_const_del (1 << (31-$v)) $m2c_const_sfx
  49. @         else@
  50. $m2c_const_dcl $m2c_ename $m2c_const_del $v $m2c_const_sfx
  51. @         end@
  52. @      end@ # for each
  53.  
  54. #endif /* ${m2c_de_pfx}_ENUMS */
  55.  
  56. @      if "$node.perltype" eq "BITS"@
  57. $m2c_const_dcl $m2c_enum_mask $m2c_const_del ($m2c_mask)
  58.     
  59. @      end@
  60. @     if ($m2c_node_skip_mapping != 1) && ($node.enums == 1)@
  61.     /*
  62.      * TODO:140:o: Define your interal representation of $node enums.
  63.      * (used for value mapping; see notes at top of file)
  64.      */
  65. @         foreach $e $v enum@
  66. @            include m2c_setup_enum.m2i@
  67. @            if ("$node.perltype" ne "BITS")@
  68. $m2c_const_dcl INTERNAL_$context.uc_$m2c_iname $m2c_const_del $v $m2c_const_sfx
  69. @            else@
  70. $m2c_const_dcl INTERNAL_$context.uc_$m2c_iname $m2c_const_del (0x01 << $v) $m2c_const_sfx
  71. @            end@
  72. @         end@ // foreach
  73.  
  74. @     end@ // skip mapping / enums
  75.  
  76. @end@ # ! syntax include
  77. ########################################################################
  78. @if $m2c_mark_boundary == 1@
  79. /** END code generated by $RCSfile$ $Revision: 12011 $ */
  80. @end@
  81.